package com.bitdf.txing.common.enume;

/***
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：10001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * 错误码列表：
 *  10: 通用
 *      001：参数格式校验
 *  11: 组团
 *  12: 用户
 *  13: 聊天
 *  14: 动态
 *  15: es
 *  16: 库存
 *  17: 商品
 *
 */
public enum TxCodeEnume {
    /**
     * 10  公共
     */
    COMMON_REQUEST_SUCCESS(200,"SUCCESS"),
    COMMON_TARGET_NOT_EXIST_EXCEPTION(404,"操作对象不存在"),
    COMMON_SYSTEM_UNKNOWN_EXCEPTION(500, "未知异常，请联系管理员"),
    COMMON_REQUEST_METHOD_EXCEPTION(10000,"请求方法异常"),
    COMMON_SUBMIT_DATA_EXCEPTION(10001,"包含非法数据异常"),
    COMMON_DATABASE_RECORD_EXIST_EXCEPTION(10002, "数据库中已存在该记录"),
    COMMON_SMS_CODE_EXCEPTION(10003,"验证码获取频率太高，稍后再试"),
    COMMON_OPS_FAILURE_EXCEPTION(10004, "操作失败异常"),



    CONDITION_NOT_VALID_EXCEPTION(10009,"不满足相关条件，该操作不予以执行"),

    TO_MANY_REQUEST_EXCEPTION(10010,"请求流量过大，请稍后再试！"),
    /**
     * 11 es
     */
    UPDATE_ES_FAILURE_EXCEPTION(11001,"更新es中数据出现异常"),
    /**
     * 12 用户
     */
    USER_ALREADY_EXIST_EXCEPTION(12001,"用户已存在异常"),
    PASSWORD_ERROR_EXCEPTION(12002,"密码错误"),
    USER_NOT_EXIST_EXCEPTION(12003,"用户不存在异常"),

    USER_NOT_PERM_EXCEPTION(12007,"权限不足"),

    USER_NOT_LOGIN_EXCEPTION(12006,"未登录异常"),

    /**
     * 13
     */

    /**
     * 14
     */


    /**
     * 15
     */
    TARGET_DOCS_NOT_EXIST_EXCEPTION(15001,"请检查目标文档是否存在！"),

    USER_EXIST_EXCEPTION(15001,"用户存在"),
    PHONE_EXIST_EXCEPTION(15002,"手机号存在"),
    LOGINACCT_PASSWORD_INVAILD_EXCEPTION(15003,"账号密码错误"),

    /**
     * 16 库存
     */
    WARE_NOT_STOCK_EXCEPTION(16001, "库存不足异常"),
    /**
     * 17 商品
     */
    PRODUCT_UP_FAILURE_EXCEPTION(17001, "商品上架失败异常");

    private int code;
    private String msg;
    TxCodeEnume(int code, String msg){
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }


    public static String getMsgByCode(int code){
        TxCodeEnume[] enums = values();
        for (TxCodeEnume enume : enums) {
            if (enume.getCode()==code)
            {
                return enume.getMsg();
            }
        }
        return null;
    }
}
